package com.qf.exception;

import java.util.Date;

/**
 * 异常的概念
 *
 * 如果某个方法运行时发生了异常（不对异常做任何处理），那么发生异常之后代码 不会 被执行了
 * 准确的说法：如果方法运行时发生异常（不做处理），会把正在执行该方法的线程退出（调用方的后续代码也无法执行了）
 */
public class Demo01 {
    public static void main(String[] args) {

        System.out.println(Thread.currentThread().getName()+"：hello");

        method1();

//        try {
//            method1();
//        } catch (Exception e) {
////            throw new RuntimeException(e);
//            System.out.println("e:"+e.getMessage());
//        }

        System.out.println(Thread.currentThread().getName()+"：886");

    }

    public static  void  method1(){

        // 开启一个新的线程
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    try {
                        // 线程休眠1000毫秒
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }
                    // 打印当前时间戳
                    System.out.println(Thread.currentThread().getName()+":"+new Date());
                }
            }
        });
        thread.setName("cat线程");
        thread.start();  // 启动线程

        System.out.println(Thread.currentThread().getName()+"：进入method1");
//        try {
//            int a = 1/0;   // 运行时异常 （编译器不会强制程序员处理这种异常）
//        } catch (Exception e) {
////            throw new RuntimeException(e); // 抛出异常会让当前方法结束
//            System.out.println("捕获到了异常："+e.getMessage());
//        }
        int a = 1/0;
        System.out.println(Thread.currentThread().getName()+"：method1结束");
    }
}
